const express = require('express');
const app = express();

//配置解析表单数据的中间件
app.use(express.json());
app.use(express.urlencoded({ extended: false }));

//必须在配置cors中间件之前，配置jsonp的接口
//jsonp的路由没有放在路由模块中进行同一的处理,所以需要手动加/api
app.get('/api/jsonp', (req, res) => {
  //定义jsonp接口具体的实现过程

  //1.获取客户端发送过来的回调函数的名字
  const funcName = req.query.callback;
  //2.得到要通过JSONP形式发送给客户端的数据
  const data = { name: 'zs', age: 20 };
  //3.根据前两步得到的数据，拼接出一个函数调用的字符串
  const scriptStr = `${funcName}(${JSON.stringify(data)})`;
  //4.把上一步拼接得到的字符串，响应给客户端的<script>标签进行解析执行
  res.send(scriptStr);
})


//一定要在路由之前，配置cors这个中间件，从而解决接口跨域问题
const cors = require('cors');
app.use(cors());

//导入并注册路由模块
const apiRouter = require('./apiRouter.js');
app.use('/api', apiRouter);

app.listen(80, () => {
  console.log('express server running at http://127.0.0.1');
})